package org.primftpd.util; import java.io.FileOutputStream; import java.io.IOException; import java.security.KeyPair; import java.security.KeyPairGenerator; import java.security.NoSuchAlgorithmException; import java.security.PrivateKey; import java.security.PublicKey; import java.security.SecureRandom; import java.security.spec.PKCS8EncodedKeySpec; public class KeyGenerator { public static final String KEY_ALGO = "RSA"; public static final int KEY_SIZE = 2048; public void generate(FileOutputStream pubKeyFos, FileOutputStream privKeyFos) throws IOException, NoSuchAlgorithmException { SecureRandom sr = new SecureRandom(); KeyPairGenerator keyGen = KeyPairGenerator.getInstance(KEY_ALGO); keyGen.initialize(KEY_SIZE, sr); KeyPair keypair = keyGen.generateKeyPair(); PrivateKey privKey = keypair.getPrivate(); PublicKey pubKey = keypair.getPublic(); pubKeyFos.write(pubKey.getEncoded()); PKCS8EncodedKeySpec privKeySpec = new PKCS8EncodedKeySpec(privKey.getEncoded()); privKeyFos.write(privKeySpec.getEncoded()); } }